package com.ruoyi.web.controller.tool;

import java.math.BigDecimal;

public class FeeCalculator {

    private static final int MINUTE_RATE = 10; // 每60分钟10元
    private static final int HOUR_RATE = 40;  // 每24小时40元
    private static final int MAX_FEE = 99;     // 封顶99元

    public static double calculateFee(long durationMinutes) {
        // 计算按分钟计算的费用
        double minuteFee = (durationMinutes / 60.0) * MINUTE_RATE;

        // 计算按小时计算的费用
        double hourFee = (durationMinutes / (24.0 * 60)) * HOUR_RATE;

        // 取两种计算方式的最大值
        double totalFee = Math.max(minuteFee, hourFee);

        // 封顶99元
        return Math.min(totalFee, MAX_FEE);
    }
    public static BigDecimal calculateFee2(long durationMinutes) {
        // 不足60分钟按60分钟计算
        if (durationMinutes < 60) {
            durationMinutes = 60;
        }

        // 计算按分钟计算的费用
        BigDecimal minuteFee = BigDecimal.valueOf((durationMinutes / 60.0) * MINUTE_RATE);

        // 计算按小时计算的费用
        BigDecimal hourFee = BigDecimal.valueOf((durationMinutes / (24.0 * 60)) * HOUR_RATE);

        // 取两种计算方式的最大值
        BigDecimal totalFee = minuteFee.max(hourFee);

        // 封顶99元
        return totalFee.min(BigDecimal.valueOf(MAX_FEE));
    }
}
